package com.yifei.service.system;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifei.model.dto.auth.UserAuthInfo;
import com.yifei.model.entity.system.SysUser;
import com.yifei.model.form.system.UserForm;
import com.yifei.model.query.system.UserPageQuery;
import com.yifei.model.vo.system.UserInfoVO;
import com.yifei.model.vo.system.UserPageVO;

/**
 * 用户信息表(SysUser)表服务接口
 *
 * @author yiFei
 * @since 2023-09-23 20:56:10
 */
public interface SysUserService extends IService<SysUser> {
    /**
     * 根据用户名获取认证信息
     *
     * @param username 用户名
     * @return {@link UserAuthInfo}
     */
    UserAuthInfo getUserAuthInfo(String username);

    /**
     * 用户分页列表
     *
     * @param queryParams 查询参数
     * @return 用户分页列表
     */
    IPage<UserPageVO> getUserPage(UserPageQuery queryParams);

    /**
     * 获取当前登录用户信息
     *
     * @return 当前用户信息
     */
    UserInfoVO getCurrentUserInfo();

    /**
     * 新增用户
     *
     * @param userForm 用户表单
     * @return 是否增加成功
     */
    boolean saveUser(UserForm userForm);

    /**
     * 获取用户详情
     *
     * @param userId 用户id
     * @return 用户表单数据
     */
    UserForm getUserFormData(Long userId);
}

